package com.dscyy.readutil;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.Writer;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashSet;
import java.util.Set;
import java.util.regex.Pattern;

public class DownNamesInfo2 {
	public static void main(String[] args) throws Exception {// 本程序内部异常过多为了简便，不一Try，直接抛给虚拟机
		Long StartTime = System.currentTimeMillis();
		System.out.println("--     欢迎使用飞扬简易网页爬虫程序      --");
		System.out.println("");
		System.out.println("--请输入正确的网址如http：//www.baidu.com--");
//		Scanner input = new Scanner(System.in);// 实例化键盘输入类

		String webaddress = "http://tieba.baidu.com/p/2314539885";// 创建输入对象
		File file = new File("D:" + File.separator + "downnames.txt");// 实例化文件类对象

		// 并指明输出地址和输出文件名

		Writer outWriter = new FileWriter(file);// 实例化outWriter类

		URL url = new URL(webaddress);// 实例化URL类。

		URLConnection conn = url.openConnection();// 取得链接

		BufferedReader buff = new BufferedReader(new InputStreamReader(

				conn.getInputStream()));// 取得网页数据

		String line = null;
		int i = 0;
		String regex = "\\w+@\\w+(\\.\\w+)+";// 声明正则，提取网页前提

		Pattern p = Pattern.compile(regex);// 为patttern实例化
		Set<String> allname = new HashSet<String>();

		outWriter.write("该网页中所包含的的邮箱如下所示:\r\n");
		while ((line = buff.readLine()) != null) {

			if(line.contains("<a data-field=")) {
				String name = line.substring(line.indexOf("target=\"_blank\">")+16, line.indexOf("</a>"));
				allname.add(name);
			}
//			while (m.find()) {
//				i++;
//				outWriter.write(m.group() + ";\r\n");// 将匹配的字符输入到目标文件
//			}
		}
		for(String s : allname) {
			outWriter.write(s + ";\r\n");// 将匹配的字符输入到目标文件
		}
		Long StopTime = System.currentTimeMillis();
		String UseTime = (StopTime - StartTime) + "";
		outWriter.write("--------------------------------------------------------\r\n");
		outWriter.write("本次爬取页面地址：" + webaddress + "\r\n");
		outWriter.write("爬取用时：" + UseTime + "毫秒\r\n");
		outWriter.write("本次共得到邮箱：" + allname.size() + "条\r\n");
		outWriter.write("****谢谢您的使用****\r\n");
		outWriter.write("--------------------------------------------------------");
		outWriter.close();// 关闭文件输出操作
		System.out.println(" —————————————————————\t");
		System.out.println("|页面爬取成功，请到D盘根目录下查看test文档|\t");
		System.out.println("|                                         |");
		System.out.println("|如需重新爬取，请再次执行程序,谢谢您的使用|\t");
		System.out.println(" —————————————————————\t");
	}
}